package cn.tedu.stage2.io;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

/**
 * 在流连接中使用PrintWriter
 */
public class PWDemo2 {
    public static void main(String[] args) throws FileNotFoundException {
        //向pw2.txt文件中写入字符串
        FileOutputStream fos = new FileOutputStream("pw2.txt",true);
        OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
        BufferedWriter bw = new BufferedWriter(osw);
        /*
            PrintWriter提供了可以打开自动行刷新功能的构造器
            当第一个参数为一个流时，就支持再传入一个boolean值，如果该值为true
            则打开了自动行刷新，此时每当我们调用一次println方法，就会自动flush
         */
        PrintWriter pw = new PrintWriter(bw,true);
        /*
            完成建议记事本功能
            程序启动后，将用户在控制台输入的每一行字符串都按行写入文件中。
            当用户单独输入exit时，程序退出。
         */
        Scanner scanner = new Scanner(System.in);
        while(true){
            String line = scanner.nextLine();
            if("exit".equals(line)){
                break;
            }
            pw.println(line);
        }
        System.out.println("再见!");
        /* 上面PrintWriter pw = new PrintWriter(bw,true)
        加了true，就不用加pw.flush();
         */
        pw.close();
    }
}
